/**
 * 给你一个整数数组 nums ，请你找出一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和。
 *
 * 子数组 是数组中的一个连续部分。
 *思路：求出状态转移方程（动态规划思路）
 *
 */
class MaxSubArray {
    public int maxSubArray(int[] nums) {
        int pre=0;
        int max=nums[0];
        int len=nums.length;
        for(int i=0;i<len;i++){
            pre=Math.max(pre+nums[i],nums[i]);
            max=Math.max(pre,max);
        }
        return max;
    }
}